#define _CRT_SECURE_NO_WARNINGS 1
//#include <iostream>
//#include<vector>
//#include<algorithm>
//using namespace std;
//struct time1 {
//    int begin;
//    int end;
//};
//bool cmp(const time1& t1, const time1& t2)
//{
//    return t1.end < t2.end;
//}
//int main() {
//    int n;
//    cin >> n;
//    vector<time1> times(n);
//    for (int i = 0; i < n; i++)
//    {
//        cin >> times[i].begin >> times[i].end;
//    }
//    sort(times.begin(), times.end(), cmp);
//    int end = 0;
//    int count = 0;
//    for (int i = 0; i < n; i++)
//    {
//        if (times[i].begin >= end)
//        {
//            count++;
//            end = times[i].end;
//        }
//
//
//    }
//    cout << count;
//    return 0;
//}
#include <iostream>
#include<cmath>
#include<cstring>
#include<string>
using namespace std;
bool check(long long x)
{
    int max = sqrt(x);
    for (long long i = 2; i < max; i++)
    {
        if (x % i == 0)
            return false;
    }
    return true;
}
int main() {
    int num;
    cin >> num;
    string str = to_string(num);
    if (str.size() % 2 == 0)
    {
        int cur = str.size() - 2;
        while (cur >= 0)
        {
            str += str[cur];
            cur--;
        }
    }
    else {
        int cur = str.size() - 1;
        while (cur >= 0)
        {
            str += str[cur--];
        }
    }
    long long num2 = 0;
    for (int i = 0; i < str.size(); i++)
    {
        num2 *= 10;
        num2 += str[i] - '0';
    }
    if (check(num2))
    {
        cout << "prime" << endl;
    }
    else cout << "noprime" << endl;
    return 0;
}